import Vue from 'vue'

// 导入默认样式的css
import 'normalize.css/normalize.css' // A modern alternative to CSS resets

// 导入组件库
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
// import locale from 'element-ui/lib/locale/lang/en' // lang i18n

// 导入国际化语言
import i18n from '@/lang/index.js'

// 导入全局的公共样式
import '@/styles/index.scss' // global css

import App from './App'
import store from './store'
import router from './router'

import '@/icons' // icon
import '@/permission' // permission control

// 注册组件
import Components from '@/components'
// Vue.use(Components)

// 注册全局混入组件
import mixin from '@/mixin/checkPoints.js'

// ******************  导入 Echarts   ***********************

// 引入 echarts 核心模块，核心模块提供了 echarts 使用必须要的接口。
import * as echarts from 'echarts/core'
// 引入柱状图图表，图表后缀都为 Chart
import {
  BarChart, // 柱状图
  RadarChart // 雷达图
} from 'echarts/charts'
// 引入提示框，标题，直角坐标系组件，组件后缀都为 Component
import {
  TitleComponent,
  TooltipComponent,
  GridComponent
} from 'echarts/components'
// 引入 Canvas 渲染器，注意引入 CanvasRenderer 或者 SVGRenderer 是必须的一步
import {
  CanvasRenderer
} from 'echarts/renderers'

// 注册必须的组件
echarts.use(
  [RadarChart, TitleComponent, TooltipComponent, GridComponent, BarChart, CanvasRenderer]
)

Vue.prototype.echarts = echarts
// ******************  导入 Echarts  完毕  ***********************

// 导入指令模板
import * as dicts from '@/directives'
console.log('获取到的所有指令对象', dicts)
// 遍历对象注册过的所有指令
Object.keys(dicts).forEach(dname => {
  // 指令名称，指令逻辑
  Vue.directive(dname, dicts[dname])
})

Vue.use(Components)

Vue.mixin(mixin)

// set ElementUI lang to EN
// Vue.use(ElementUI, { locale })
// 如果想要中文版 element-ui，按如下方式声明
Vue.use(ElementUI)

Vue.config.productionTip = false
// 根实例配置项
new Vue({
  el: '#app',
  router,
  store,
  i18n,
  render: h => h(App)
})
